home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / comunic / frgsc123.zip / SCANNER.DOC < prev   
Text File  |  1994-01-23  |  32KB  |  580 lines

  1. SCANNING PROGRAM for FRG-9600
  2. Version 1.23
  3. Copyright 1993 DWCC
  4.  
  5. Date:        23 January 1994
  6. Author:        RSM (IRC handle) a.k.a. ??????
  7. Internet:    asirene@ntuvax.ntu.ac.sg
  8.  
  9. -1.    Miscelanny
  10.  
  11.         This program is dedicated to my patient and understanding wife who put
  12. up with my late night and all day programming and software building and who
  13. did not mind my buying the FRG-9600 MK5. I would also like to say thanks to all
  14. who have helped by providing meaningful discussions on IRC #maxwell #warez and
  15. #hack. All you out there, 73's and happy scanning.
  16.  
  17.     If you want to write your own conversion utility, note that the first
  18. 43 bytes stay the same. After that starts the 1000*19 records. If you have any
  19. queries or suggestions please e-mail to me at the above address.
  20.  
  21.         I now realize that the command format for the FRG8800 is different from
  22. the one used in the FRG9600 and therefore the program will NOT work with FRG-
  23. 8800 presently. If however there are enough users who want the FRG8800 version
  24. I do not mind writing one for it. This depends entirely on the demand.
  25.  
  26. 0.    Introduction
  27.  
  28.     This program is freeware, freely used, freely copied, distributed
  29. but not to be SOLD or commercialized without permission of the author. Other
  30. than that, please have fun. It came about because the existing program I
  31. saw, the MULTISCAN 1.6 was way too BIG, SLOW, and short on essential
  32. features, hence I wrote this programme for my own use. I have some more
  33. features I would like to add but at this time I just want to get this out of
  34. the door. My FRG-9600 is extensively modified but is still compatible with
  35. any unit out there I should think.
  36.  
  37.     This is distributed with 4 files:-
  38.  
  39.     SCANNER.COM    the TSR executable
  40.     SCANNER.DAT    a sample data file
  41.         SCANNER.DOC     this documentation
  42.         SCAN88.COM      XT (8088) version of the same program
  43.         EMI.TXT         text for dealing with RFI
  44.  
  45.     If you want to reset everything, just delete the SCANNER.DAT and when
  46. you start SCANNER.COM it will automaticaly create a fresh data file in the
  47. directory where SCANNER.COM is installed. The data file must be in the same
  48. directory as SCANNER.COM for it to be found. Note that the default is still
  49. COM3 and if you do not specify anything the program will use COM3. Also if you
  50. specify a 2-digit port, anything after the first digit is ignored so /C34 or
  51. /C3A is the same as /C3. From version 1.17 I have added 2 more command line
  52. switches. These are /Xyy,xx where yy is the y-offset of the pop-up box position
  53. from the top and xx is the x-offset of the box position from the RIGHT of the
  54. screen. Be forewarned that no limit checks are performed on these but that the
  55. maximum acceptable value is 255. Try to keep these within reasonable limits or
  56. I cannot guarantee the behavior of the program. The other switch I added is the
  57. /Pnn switch where nn is any number less than 65536. This number determines the
  58. pitch of the beep produced by the program. A greater number corresponds to a
  59. lower pitch and the default pitch number is 200. As usual I have not tried
  60. numbers 0 and 65535 so I cannot tell you what will happen when you do. This is
  61. more for simple customizations.
  62.  
  63.         I have now included in the distribution an XT (8088) compatible version
  64. because I realized that while AT is predominant, many users still have only XTs
  65. or would like to use it with their XT. This is presently untested because at
  66. this point of time I do not have access to a convenient XT. Please channel all
  67. bug reports to me. Note that the AT will be able to run both versions taking
  68. into account the changed keys for F11 and F12 which are not available for the
  69. XT class machines. The 8088 version is slightly larger though. Other than that
  70. it uses the same data file.
  71.  
  72.     I hope you enjoy this program and interface as I have. I spent 3-days
  73. designing and building the interface and 3-days writing the assembly code and
  74. debugging but a long time thinking about it before I actually started.
  75.  
  76. 1.    Background
  77.  
  78.     This programme is written completely in assembly so please inform
  79. me if you find and bugs so that it can ease my debugging task. Also feel free
  80. to suggest any new features that you would like to see in this program. The
  81. minimum requirement to run this programme is theoretically a 286, and a fast
  82. one too I should think, but the code is 286 compatible. However I use it on
  83. a 486DX-36 and have not tested on other speeds, again let me know. The total
  84. memory required is under 26k so any memory configuration should be okay. As
  85. for the interface unit, the usual YAESU FIF/IF-232-C will NOT work properly
  86. with this program because although the program can still control the radio,
  87. there is no way for the program to detect a signal. Accompanied with this
  88. document is a VERY simple and CHEAP serial interface that is compatible with
  89. YAESU's, and costs a lot less while providing more features. Many parameters
  90. in the program has not been made configurable but if there is any interest I
  91. might look into it or if anyone would like to have a copy of the source code.
  92. The actual code is only about 5-6k, the rest of the space is taken up by the
  93. database entries.
  94.  
  95. 2.    Features
  96.  
  97.     This program provides 1000 memories which will store the frequency, the
  98. reception mode, and a 13 byte description field. These are organized into 10
  99. banks of 100 channels for bank scanning. Individual channels can be marked to
  100. be skipped during memory scanning. The use of the program is patterned after
  101. the original FRG-9600 usage but not exactly, however it should not be too hard
  102. to figure out its usage. 2 VFO's are provided with individual limits and steps.
  103. There is a choice of steps from 100 Hz to 10 mHz for easy tuning. Frequencies
  104. can be keyed in directly or retrieved from memory.
  105.  
  106.     Prior to version 1.14 I had forgotten to include serial port setting
  107. option (ack!) and so it always defaulted to COM3 which is the one I used. It
  108. then dawned upon me that others may have difficulty with this and so with
  109. version 1.14 onwards you can use the command-line parameter /Cx where x is a
  110. number from 1 to 4 to specify which port you want to use. So if you are using
  111. COM4 you will issue a SCANNER.EXE /C4 and the program will then use COM4. Note
  112. that as from version 1.18's major bugfix on this feature, the selected port is
  113. saved along with the database so it needs to be specified only once if a save
  114. is performed at anytime.
  115.  
  116.     Scanning is provided in 3 speeds, as is manual tuning, and can be
  117. configured to stop or pause on a signal, squelch release or a combination of
  118. the two. This feature is only possible if my serial interface is used.
  119.  
  120.     The most interesting feature of this programme that I like is the fact
  121. that it is a TSR that can scan in the background. It actually traps the Int 08
  122. and Int 09 for this purpose and does some reprogramming of the timer but should
  123. be okay with normal DOS programs and QEMM. Once a scan is started the program
  124. can be put in the background and it will continue scanning while you can run
  125. other normal DOS programs without much problems. This is a tricky feature to
  126. implement so I expect problems but so far it has worked okay for me. When a
  127. signal is detected it will stop or pause and issue a short beep to get your
  128. attention. At the time of writing I have not tried putting the program in
  129. high memory but there should be no problem. Nevertheless, timing is very
  130. critical for the proper behaviour of this program. I also am wary of QEMM's
  131. stealth mode. Quarterdeck recommends that mode only when absolutely necessary.
  132.  
  133.     The state of the SCANNER, including all memories, is saved upon exit
  134. unless explicitly specified. The usual exit with Alt-X will save the state
  135. while the Alt-Q will not save the state. A data file is created in the
  136. directory scanner is run from under the name of SCANNER.DAT which is auto-
  137. matically loaded and updated upon entry and exit respectively.
  138.  
  139.     I have now tested loading-high the SCANNER and it works just fine.
  140.  
  141. 3.    Future features and problems
  142.  
  143.         A problem of this setup is the fact that the signal response is
  144. rather slow and scanning in memory or in large steps may result in overshooting
  145. the exact frequency, unfortunately I am not too keen to modify the hardware at
  146. this time and changing the software would only mean slowing down the scan.
  147. This can usually be remedied by using a slower scan rate. Alternatively, if
  148. you are using dial/free scan, you can elect to use smaller tuning steps which
  149. may reduce the severity of the overscan effect.
  150.  
  151.     In use, the display flickers on every command received but this is
  152. not the fault of my program but the problem of the FRG unit. Maybe YAESU can
  153. help us with this one. Secondly, there may be some relay clicking inside
  154. some units, again this is not the fault of the program but of the radio. I will
  155. look into this sometime soon.
  156.  
  157.     As of version 1.11, I will be looking to add a auto-logging for any
  158. frequency encountered with activity. In case you run into some programs which
  159. reset the clock and results in slowed or no response to frequency change
  160. commands, try changing the rate because each rate change will reset the clock
  161. to the appropriate value and reset the port to 4800 bauds which is required by
  162. the FRG CAT interface.
  163.  
  164.     As I have mentioned, the simplicity of this interface is due in part
  165. to the fact that the CAT design on the FRG-9600 internally ties the S.I. (pin
  166. 3) to the positive 5v rail. This allows me to draw power for my transistor
  167. through the S.I. pin therefore eliminating the need for an external power-
  168. supply. This peculiarity may not be found on other YAESU radios however, and
  169. in that case we are left with two possibilities, to either provide an external
  170. power supply or to draw the power from the serial port. In order to use an
  171. external supply, get a 5v supply and tie the 0v to the 0v (ground) of the
  172. interface circuit, and tie the S.I. of the CAT (which is also the collector of
  173. the transistor) to the the +5v through a 10k resistor. This should do the trick
  174. and is the easiest way to fix the problem. You should try this only if there
  175. absolutely no response on the side of the radio to any commands sent. Do this
  176. only after eliminating all other possibilities (which aren't many). The other
  177. way to fix this is to draw power from the serial port which requires the port
  178. to be appropriately programmed. Unfortunately not all controller programs do
  179. this, but the programming is easily done by setting any of the output pins on
  180. the serial port to low (+5v) instead of the default high (-12v). For more
  181. information check out programming or technical docs or e-mail me.
  182.  
  183.     When using this interface with other controller programs, there are a
  184. few things to consider. The first is that programs which control the port using
  185. the BIOS to send the data will probably timeout because it expects the DSR and
  186. CTS to be low (tied to a +12v supply through 10k resistors). I did not do this
  187. because my program writes to the port directly and does not check these pins
  188. since the CAT port does not support them. Some programs which do (eg. QBASIC)
  189. will run into problems. MULTISCAN works fine however.
  190.  
  191.     The second thing to note is that the feedback sections (parts 2 and 3)
  192. are custom designed for use with my FRGSC1xx program and is probably not
  193. supported by other controller programs so these need not be built. The behavior
  194. of the SQUELCH unit is probably different because it is supposed to be the BUSY
  195. line on other YAESU units. So there you are.
  196.  
  197. 4.    Usage
  198.  
  199.     Only one instance of SCANNER is allowed at any one time and a marker
  200. is set at 0040:0015 to indicate an instance. If another program is installed
  201. after SCANNER which alters either Int 08 or 09, then SCANNER will refuse to
  202. exit and issue a beep if an exit is attempted. You may remove that program
  203. first before SCANNER will exit gracefully. Once invoked, the program will
  204. pop-up upon pressing Alt-x where x is the number corresponding to the COM port
  205. for which the SCANNER is controlling. This when SCANNER is run it defaults to
  206. COM3 so the hot-key is Alt-3. The hot-key is otherwise not alterable at this
  207. time but if someone feels that it should be, then let me know. I just want to
  208. keep the program small and simple though.
  209.  
  210.     F1 will bring up a crude help which gives a summary of almost all the
  211. commands. Crude is the word however, due to lack of display space. F5 and F6
  212. will retrieve and save the present frequency, mode and step into a buffer for
  213. retrieval. This buffer is automatically updated upon any change from DIAL to
  214. MEMORY or vice versa, so F6 in effect will function as a Memory to Dial key if
  215. pressed after an F5, that is an F5 followed by F6 is equals to a mem-to-dial
  216. function. F5 is not the Dial to Memory however, it is a seldom used feature.
  217.  
  218.     F2 now sorts the current memory bank according to increasing freq-
  219. uency but affects only the current bank. The present channel will be retained
  220. if relocated.
  221.  
  222.     F4 will save the current state of the SCANNER to file. This is used to
  223. update the file without needing to exit from scanner.
  224.  
  225.     F3 toggles the beep/silent mode. This affects ALL beeps and its state
  226. is show in the status bar by the presence of a "note" symbol for beep active.
  227.  
  228.     F7 will only work when the current VFO is in MEMORY mode and will allow
  229. the description field of the current channel to be edited. This is a 13 byte
  230. field which will be displayed along with the channel. If a mistake is made or
  231. if you decide to discard the entered data, hit ESC to revert to the previous
  232. state. (Note: I have experience a problem here once but cannot repeat it.) As
  233. of version 1.11 the left and right arrows along with the backspace key also work
  234. while editing a description.
  235.  
  236.     F8 toggles the VFO tracking action.
  237.  
  238.     F9 toggles the current VFO between DIAL and MEMORY mode.
  239.  
  240.     F10 cycles through the three speeds for tuning and scanning. The
  241. three are indicated on the status bar.
  242.  
  243.     F11 cycles through the scan-stop modes. S is for Signal, Q for sQuelch
  244. and P for Pause. Any scanning can stop or pause upon signal and/or squelch
  245. depending of which setting is selected. S-P- will pause on a signal while SQ--
  246. will stop on either a signal or squelch release. A last minute addition is the
  247. "H" option which when activated will stay with the channel until the signal is
  248. lost. On the XT version, this is activated by shift-F9.
  249.  
  250.     F12 cycles through the 6 reception modes of the FRG unit.
  251.         On the XT (8088) version of the program, this is replaced by the
  252. shift-F10 key because XT's don't normally have entended keyboards.
  253.  
  254.  
  255.     Shift-F1 will display the list of skipped bands. The up and down arrows
  256. will scroll through the list which contains 20 entrys. The space bar toggles
  257. the state of the entry. A "+" in front of the entry indicates that the skip
  258. is active. A blank indicates otherwise. The Escape key will exit this view mode.
  259. The left most number is the entry number followed by the beginning of the skip
  260. band and the ending frequencies.
  261.  
  262.     PageUp and PageDown will initiate scanning up and down respectively.
  263. The scanning will be a memory scan if the current VFO is in MEMORY mode or
  264. a free scan if current VFO is in DIAL mode. In dial mode the scan is delimited
  265. by the set limits while in a memory scan is limited to the current bank of
  266. 100 which will be searched for any valid memory which is not designated for
  267. skipping. Scanning rate is governed by the tuning speed defined by F10.
  268. Not that if there are no valid channels in the current bank, the SCANNER will
  269. revert to DIAL mode. Scanning can be stopped by any keypress while the
  270. SCANNER is popped-up and active. During scanning an arrown appears in the
  271. status bar to indicate direction of scanning and if paused, a diamond appears.
  272.  
  273.     "\" will work only in MEMORY mode and is used to toggle the status of
  274. the current memory channel for either Normal, Skipped or Priority as indicated
  275. by a space, an "x" and an "!" respectively. Priority channel scanning is now
  276. implemented as of 1.14. A channel designated for skipping will not be checked
  277. on memory scanning. A Prioritized channel will be checked every 4 scanned
  278. channels and this function works only during scanning. Only one priority
  279. channel is permitted per bank.
  280.  
  281.     Any numeric key will start the numeric editor from which one can enter
  282. a frequency directly or a channel. This behaviour is similar to the original
  283. behaviour of the FRG unit so check out the manual. If a frequency is keyed,
  284. then a CR (Return or Enter) will set the current VFO to DIAL mode at that
  285. frequency if it is within the set limits and is valid. If a "[" or "]" is
  286. pressed, then the lower and upper limit is set respectively. Limits may not
  287. exceed the absolute minimum of 60 mHz and maximum of 950 mHz respectively or
  288. they will be rejected. Also see that the low limit is below current upper limit
  289. and vice versa. Each VFO maintains its own limits and tuning steps.
  290.  
  291.     As of version 1.1 banks can be address by alphabet so you can type
  292. J2 instead of 272. This applies in all modes but once an alphabet is keyed in
  293. you cannot key in another alphabet, so AA is not possible. If you enter only
  294. and alphabet, it will be interpreted as channel 0 of that bank, ie: A = A00.
  295. The exception to this is the new auto channel assign. If you type control-enter
  296. after keying in just an alphabet, the frequency will be stored in the first
  297. blank spot in that bank.
  298.  
  299.     If a channel is keyed (0 to 999) then an "M" will retrieve that channel
  300. while a control-CR will store the current VFO to the keyed channel and the
  301. delete key will delete the keyed channel. Entering a channel will auto-
  302. matically set the VFO into MEMORY mode while deleting the current channel will
  303. automatically revert the VFO to DIAL mode. For the auto-assign feature to work
  304. you need to specify bank only, without a number. When in memory mode, pressing
  305. the delete-key delete the current memory being displayed.
  306.  
  307.     If a number between 0 and 19 is keyed and followed by a "+", the current
  308. lower and upper limits (as set by "[" and "]") will then be taken to be a band
  309. specification which is to be skipped during tuning and scanning. The skip limits
  310. will then be stored in one of 20 skip memories as defined by the number that was
  311. typed before the "+" was pressed. Thus if you pressed "12+", the current limits
  312. will be stored in the 12th memory (displayable by pressing Shift-F1) and will
  313. automatically be skipped during tuning. When any limits are stored, it will
  314. default to active, this can however be toggled from the Shift-F1 viewing mode.
  315. The defined skip bands are not effective during a memory scan, and works only
  316. during a dial scan.
  317.  
  318.     The right and left arrow will increase and decrease the current VFO
  319. frequency by the set tuning step, or if it is in MEMORY mode, it will increase
  320. or decrease the memory channel to the next occupied one. This is not bank
  321. delimited. If the DIAL frequency hits the upper limit, it will issue a beep and
  322. loop to the low limit and continue, the reverse is also true. The up and
  323. down arrow will increase or decrease the tuning steps.
  324.  
  325.     The tab key will toggle between VFOA and VFOB. Each VFO maintains its
  326. own tuning step, mode and limits.
  327.  
  328.     The signal will be red when present and green when absent. The squelch
  329. is green when on and red when off. Thus the two not necessarily equal.
  330.  
  331.     The ESC key will put the SCANNER into background while. If a scan has
  332. been initiated, the scan will continue in the background. The Alt-X and Alt-Q
  333. will exit the programme and remove it from memory if possible (see above). If
  334. Alt-Q is used, all changes in current session is not saved! Alt-X is the usual
  335. method for exiting.
  336.  
  337.     A last minute addition means that now the F2 key will sort the current
  338. memory bank if the current VFO is in MEMORY mode. Other banks than the current
  339. are unaffected and the sort will be in the increasing order of frequencies.
  340.  
  341. 5.    Serial Interface
  342.  
  343.     The serial interface basically inverts the TXD from the serial port to
  344. FRG CAT plug and converts the level. Since this is a step down, a low (5v)
  345. is required for RS232C levels. Unfortunately, this +5v is not available on the
  346. serial port, fortunately YAESU has internally tied the S.I. to the internal +5v
  347. supply making it possible to use an open collector without need of external
  348. power supply.
  349.  
  350.     Pin 5 provides a +5v when no signal is present and about +3v when a
  351. full signal is present. This is very sensitive to loads however so it must be
  352. carefully used lest the voltage is not accurately representing the signal.
  353. What I did was basically to implement a one-bit ADC convertor which takes its
  354. power from the DTR and/or RTS lines. The squelch signal on pin 6 of the CAT
  355. is actually documented as the BUSY line but it does not exhibit that behaviour.
  356. Rather it seems to be at a 5 volts when the squelch is active. Again a one-bit
  357. ADC is employed. The AGC signal from Pin 5 is fed through a voltage divider
  358. with a variable resistor for manual level setting.
  359.  
  360.     All the above can be implemented with 3 transistors, 2 zener diodes, a
  361. few resistors and I have built it all on a small piece of Vero or matrix board
  362. which fits snugly into the casing of a 9-pin D-plug for the serial port and so
  363. with no external power supply, looks just like a normal cable.
  364.  
  365.     This serial interface can use the same port concurrently with the
  366. famous HAMCOMM interface without conflict so for users of HAMCOMM, you can use
  367. the same port or build it together with the HAMCOMM circuit.
  368.  
  369.  
  370.                         SERIAL LEVEL CONVERTOR
  371.      Pinout on                 o---------------o S.I. (Pin 3 on CAT)
  372.      9-pin D-plug              |
  373.                           b   / c
  374.      TXD (3)  o---o-----o---(|)  BC547 or similar NPN silicon transistor
  375.                   |     |     \ e
  376.            IN4148 A     Z 10k  |
  377.                   |     |      |
  378.      GND (5)  o---o-----o------o---------------o GND (Pin 1 on CAT)
  379.  
  380.  
  381.      RTS (7)  o---o          o-----------------o AGC (Pin 5 on CAT)
  382.                   |          |
  383.                   Z 4.7k*    A 2.4v zener (IN5221)
  384.                   |          |
  385.       CD (1)  o---o          Z 10 k
  386.                  c \   b     |
  387.            BC547   (|)-------o   SIGNAL ADC
  388.                  e /         |
  389.                   |          Z 4.7k
  390.                   |          |
  391.      GND (5)  o---o----------o-----------------o GND (Pin 1 on CAT, see above)
  392.  
  393.   * This can be made a 2.7k in series with a 20k potentiometer for variable
  394.     level. If this is fixed and a circuit does not work, try using another
  395.     value, usually a slightly bigger value but variable resistors are the
  396.     easiest to use but are not compact. In fact I really strongly recommend
  397.     the 20k variable resistor. If you wish to make it compact, use a sub-
  398.     miniature preset which comes with some length of knobs. These are usually
  399.     PCB mounted types, and the build the whole circuit into a 25-pin RS-232
  400.     plug, drilling a hole in the casing for the knob to come through. This
  401.     will be compact and yet have the advantage of being really flexible in
  402.     terms of signal detection. If you still find it difficult to cram parts
  403.     into that case, you can actually fit some parts into the 6-pin DIN plug
  404.     at the radio end of the cable. This is easy if you study the circuit and
  405.     then you will have more space.
  406.  
  407.      RTS (7)  o----o
  408.                    |          SQUELCH ADC (I need to confirm this one!)
  409.                    Z 10 k                 (I haven't checked and may be wrong!)
  410.       RI (9)  o----o
  411.                   c \             36k
  412.             BC547   (|)------------Z-----------o BUSY (Pin 6 on CAT, middle)
  413.                   e /    
  414.                    |        
  415.                    | 
  416.      GND (5)  o----o---------------------------o GND (Pin 1 on CAT, see above)
  417.  
  418.  
  419.     The "Z" indicates a resistor and the "A" and "|>|" indicates the diode
  420. in the up and right pointing directions respectively.
  421.  
  422.          _______
  423.     / c b e \   Bottom view of the BC547, flat side on top.
  424.         \       /
  425.      -------
  426.  
  427.     All transistors can be BC547, BC107, BC108, BC109, BC550 or any junk-
  428. box garden variety NPN silicon transistor but NOT germanium types (just in-case
  429. you have some old ones). Preferable plastic cased ones because metal cased ones
  430. like BC108 may short the collector when built in very tight enclosures. Other-
  431. wise they work just as well. The zener can be any 1/4 watt or 1/2 watt or less
  432. zener for 2.5 volts, IN5221 is just a sample. All resistors can be 1/4 watt or
  433. 1/8 watt ones at 5% accuracy since the currents involved are really low. Note
  434. that in all three parts there is the GND connection, in practice only one needs
  435. to be made (if you understand what I mean!). If you are really new to this, you
  436. may not want to built the SQUELCH ADC and stick to using the SCANNER with stop
  437. on signals only which work fine most of the time. If you are well versed, you
  438. can understand what I am doing and maybe build a circuit with better (faster)
  439. response. I just cooked this up from parts I had, didn't even calculate much!
  440. If you are getting a 6-pin DIN plug for the CAT port, make sure you get a good
  441. look at the port because there are a variety of 6-pin DIN plug. If you can, try
  442. using ferrite beads on all the lines to minimize RFI and use screened cable.
  443. I would appreciate a better circuit with better RFI rejection but for now this
  444. works for me. As you can see, it is not a critical circuit and if you already
  445. have a HAMCOMM circuit, you can take the RTS connection to the positive side
  446. of the bridge circuit in the HAMCOMM circuit.
  447.  
  448.         There isn't anything much to calibrate except for the variable 
  449. resistor in the signal detection circuit. The preset/potentiometer is used 
  450. to adjust the threshold level of the "convertor". Tune the radio to a 
  451. section where no signal is present but where there is an appreciable noise 
  452. floor (such as around 500 mHz). Then set the preset so that the signal 
  453. indicator just goes off. This should do fine. The squelch behaviour is dependent
  454. upon the squelch setting on the radio so you may want to adjust that to see if
  455. the circuit is working.
  456.  
  457.     I don't mind answering queries and helping out if your circuit fails
  458. if you will mail me at the above address.
  459.  
  460. 6.    References
  461.  
  462.     The Waite Group's TURBO ASSEMBLER BIBLE,
  463.     Gary Syck, SAMS Publishing
  464.  
  465.     PS-2/PC ASSEMBLY LANGUAGE,
  466.     Steven Holzner, Brady
  467.  
  468.     THE PROGRAMMER'S TECHNICAL REFERENCE, MS-DOS IBM PC & Compatibles,
  469.     Dave Williams, John Wiley/Sigma Press
  470.  
  471.     ASSEMBLY LANGUAGE PROGRAMMING for the Intel 80XXX Family,
  472.     William B. Giles, Maxwell Macmillan
  473.  
  474.     Ralf Brown's Interrupt list 37
  475.  
  476.     HAMCOMM 2.2 documentation, W. F. Schroeder
  477.  
  478.     YAESU FRG-9600 manual and documentation.
  479.  
  480.     YAESU IF-232-C circuit diagram.
  481.  
  482. 7.    History
  483.  
  484.     v1.00    First version released
  485.  
  486.     v1.10    Added bank sorting and auto assign. Also fixed some bugs and
  487.         added extra scan stop mode. Added alpha bank references. A few
  488.         other bugs with the response of the system were also corrected.
  489.  
  490.     v1.11    Fixed bug to allow use of numeric pad and capitals for data
  491.         entry. Also fixed sort bug to now sort whole bank. Previously
  492.         on about 19 entries were sorted. Banks now upgraded to 10 by
  493.         50 giving total of 500 channels storage. Previous absolute
  494.         limits changed from 60-950 mHz to 0-999.999.9 mHz to include HF
  495.         range for FRG-8800. Corrected a big bug in the description
  496.         field editor, now works properly with more editing functions.
  497.         This bug previously overwrote random code and resulted in
  498.         random hangs. I hope its gone away now.
  499.  
  500.     v1.12    Minor bug fix for delete key in description editor.
  501.  
  502.     v1.13    Memories expanded to 10 banks or 100 to give 1000 memory
  503.         channels now. Also included a conversion utility from the
  504.         scanner.dat for version 1.11+ (500 memories) to 1000 memory
  505.         scanner.dat.
  506.  
  507.     v1.14    Corrected a bug with scanning down which caused the stop on
  508.         squelch open to be permanently enable. Now behaves correctly.
  509.         Included priority channels and serial port selection. Signal
  510.         identification has also been improved to reduce misses or
  511.         overshooting. Some overshooting may still occur but this is
  512.         due to the long "hang" of the FRG scanner's S-meter signal.
  513.         I can't help this one.
  514.  
  515.     v1.15    Corrected bug is scanning stop mode, was previously wrongly
  516.         implemented and behaviour of pause with hold is now improved.
  517.         The pause begins at the end of signal when hold is activated.
  518.  
  519.     v1.16    A minor change to allow steps of 9kHz for Europe and 30kHz for
  520.         cellular phone use.
  521.  
  522.     v1.17    Added some command line switches to customize box position and
  523.         beep pitch. Also updated some parts of the documentation.
  524.  
  525.     v1.18    Corrected a bug in the serial transmission data because in the
  526.         previous versions I used 1 stop bit when it should have been 2
  527.         stop bits. It still work due to the delay I inserted between
  528.         the sent characters made up for the missing stop bit. This now
  529.         allows me to send faster but I have only increased the speed
  530.         very minutely so as to maintain the accuracy of the scan stop.
  531.         I also noticed a major error in the commandline option to use
  532.         other COM ports. The error resulted in the inability to use any
  533.         port other than COM3 (sorry!) but it should be ok now. I have
  534.         also made some provision for the program to now load 4
  535.         instances for the purpose of controlling 4 COM ports. This is
  536.         highly unrecommended however and I would stick to one instance
  537.         running at any time.
  538.  
  539.     v1.19    Added band skip feature. Now bands which are known to contain
  540.         nothing important can be locked out from scanning. Great to
  541.         skip unwanted portions. The scanner.dat is slightly bigger to
  542.                 accomodate the new data but is still compatible with v1.18.
  543.  
  544.         v1.19/88        This is the XT (8088) version of the above. F11 and
  545.                 F12 have been replaced with shift-F9 and shift-F10. Some
  546.                 minor code alterations.
  547.  
  548.     v1.20    Previously the numeric keypad arrow and page keys were not
  549.         supported. Now they are. A text on dealing with RFI/EMI from
  550.         computers is now included. Deleting a channel is changed from
  551.         Control-Delete to simply Delete key after typing the channel.
  552.         This is necessary because non-extended keyboards cannot
  553.         generate the control-delete combination.
  554.  
  555.     v1.21    The fringe behaviour of the limits and tabs has been changed for
  556.         more consistency. Now all the limits are inclusive so that you
  557.         can get ON the limits but not beyond. Some cosmetic changes has
  558.         been made to the XT version to provide better support for mono-
  559.         chrome displays. There were some major mistakes in the schematics
  560.         especially in the squelch and signal circuits. These have now
  561.         been corrected. Tab display screen now supports numeric keypad
  562.         arrow keys. Documentation corrections and additions. Previously
  563.         auto-assign was stated as typing "M", this should be control-
  564.         enter.
  565.  
  566.     v1.22    Bug fix with the behaviour of the memory delete key assignment.
  567.         The delete now used to delete memory (previously ^Del). The
  568.         help screen has been improved to be more "helpful"! Some code
  569.         optimization. A rudimentary VFO tracking function has been added
  570.         which is activated frm F8.
  571.  
  572.     v1.23    Minor bug corrections, the squelch display was not working in the
  573.         right way. Now corrected.
  574.  
  575. 8.    Thanks
  576.  
  577.     to Frank Paxton NG0N for his help in distributing this program.
  578.     to buddies in #maxwell on IRC.
  579.     to respondents to my message on alt.radio.scanner
  580.     to Pekka Lempola who has been especially helpful in testing the program.